home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / kcl.lha / lsp / iolib.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  16KB  |  698 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "iolib.h"
  5. init_iolib(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     base[0]= VV[0];
  9.     (void)simple_symlispcall_no_event(VV[53],base+0,1);
  10.     MM(VV[54],L2,start,size,data);
  11.     MM(VV[55],L3,start,size,data);
  12.     MM(VV[56],L4,start,size,data);
  13.     MF(VV[57],L5,start,size,data);
  14.     MF(VV[58],L6,start,size,data);
  15.     MF(VV[59],L7,start,size,data);
  16.     MF(VV[60],L8,start,size,data);
  17.     MM(VV[61],L9,start,size,data);
  18.     MF(VV[62],L10,start,size,data);
  19.     MF(VV[63],L11,start,size,data);
  20.     MF(VV[25],L12,start,size,data);
  21.     base[0]= VV[23];
  22.     base[1]= VV[24];
  23.     base[2]= VV[25];
  24.     (void)simple_symlispcall_no_event(VV[64],base+0,3);
  25.     base[0]= VV[23];
  26.     base[1]= VV[26];
  27.     base[2]= VV[25];
  28.     (void)simple_symlispcall_no_event(VV[64],base+0,3);
  29.     MF(VV[34],L15,start,size,data);
  30.     base[0]= VV[23];
  31.     base[1]= VV[33];
  32.     base[2]= VV[34];
  33.     (void)simple_symlispcall_no_event(VV[64],base+0,3);
  34.     base[0]= VV[23];
  35.     base[1]= VV[35];
  36.     base[2]= VV[34];
  37.     (void)simple_symlispcall_no_event(VV[64],base+0,3);
  38.     VV[36]->s.s_stype=(short)stp_special;
  39.     if(VV[36]->s.s_dbind == OBJNULL){
  40.     VV[36]->s.s_dbind = Cnil;}
  41.     VV[37]->s.s_stype=(short)stp_special;
  42.     if(VV[37]->s.s_dbind == OBJNULL){
  43.     VV[37]->s.s_dbind = Cnil;}
  44.     VV[38]->s.s_stype=(short)stp_special;
  45.     if(VV[38]->s.s_dbind == OBJNULL){
  46.     VV[38]->s.s_dbind = Cnil;}
  47.     VV[39]->s.s_stype=(short)stp_special;
  48.     if(VV[39]->s.s_dbind == OBJNULL){
  49.     VV[39]->s.s_dbind = Cnil;}
  50.     MF(VV[65],L18,start,size,data);
  51.     vs_top=vs_base=base;
  52. }
  53. /*    macro definition for WITH-OPEN-STREAM    */
  54.  
  55. static L2()
  56. {    register object *base=vs_base;
  57.     register object *sup=base+VM3;
  58.     vs_reserve(VM3);
  59.     check_arg(2);
  60.     vs_top=sup;
  61.     {object V1=base[0]->c.c_cdr;
  62.     if(endp(V1))invalid_macro_call();
  63.     {object V2= (V1->c.c_car);
  64.     if(endp(V2))invalid_macro_call();
  65.     base[2]= (V2->c.c_car);
  66.     V2=V2->c.c_cdr;
  67.     if(endp(V2))invalid_macro_call();
  68.     base[3]= (V2->c.c_car);
  69.     V2=V2->c.c_cdr;
  70.     if(!endp(V2))invalid_macro_call();}
  71.     V1=V1->c.c_cdr;
  72.     base[4]= V1;}
  73.     base[6]= base[4];
  74.     symlispcall_no_event(VV[66],base+6,1);
  75.     Llist();
  76.     vs_top=sup;
  77.     base[5]= vs_base[0];
  78.     base[6]= car(base[5]);
  79.     base[7]= cadr(base[5]);
  80.     base[8]= list(2,base[2],base[3]);
  81.     base[9]= make_cons(base[8],Cnil);
  82.     base[10]= make_cons(VV[3],base[7]);
  83.     base[11]= list(2,VV[4],base[2]);
  84.     base[12]= list(3,VV[2],base[10],base[11]);
  85.     base[13]= make_cons(base[12],Cnil);
  86.     base[14]= append(base[6],base[13]);
  87.     base[15]= listA(3,VV[1],base[9],base[14]);
  88.     vs_top=(vs_base=base+15)+1;
  89.     return;
  90. }
  91. /*    macro definition for WITH-INPUT-FROM-STRING    */
  92.  
  93. static L3()
  94. {    register object *base=vs_base;
  95.     register object *sup=base+VM4;
  96.     vs_reserve(VM4);
  97.     check_arg(2);
  98.     vs_top=sup;
  99.     {object V3=base[0]->c.c_cdr;
  100.     if(endp(V3))invalid_macro_call();
  101.     {object V4= (V3->c.c_car);
  102.     if(endp(V4))invalid_macro_call();
  103.     base[2]= (V4->c.c_car);
  104.     V4=V4->c.c_cdr;
  105.     if(endp(V4))invalid_macro_call();
  106.     base[3]= (V4->c.c_car);
  107.     V4=V4->c.c_cdr;
  108.     {object V5=getf(V4,VV[67],OBJNULL);
  109.     if(V5==OBJNULL){
  110.     base[4]= Cnil;
  111.     } else {
  112.     base[4]= V5;}}
  113.     {object V6=getf(V4,VV[68],OBJNULL);
  114.     if(V6==OBJNULL){
  115.     base[5]= Cnil;
  116.     } else {
  117.     base[5]= V6;}}
  118.     {object V7=getf(V4,VV[69],OBJNULL);
  119.     if(V7==OBJNULL){
  120.     base[6]= Cnil;
  121.     } else {
  122.     base[6]= V7;}}
  123.     check_other_key(V4,3,VV[67],VV[68],VV[69]);}
  124.     V3=V3->c.c_cdr;
  125.     base[7]= V3;}
  126.     if((base[4])==Cnil){
  127.     goto T32;}
  128.     base[9]= base[7];
  129.     symlispcall_no_event(VV[66],base+9,1);
  130.     Llist();
  131.     vs_top=sup;
  132.     base[8]= vs_base[0];
  133.     base[9]= car(base[8]);
  134.     base[10]= cadr(base[8]);
  135.     base[11]= list(4,VV[5],base[3],base[5],base[6]);
  136.     base[12]= list(2,base[2],base[11]);
  137.     base[13]= make_cons(base[12],Cnil);
  138.     base[14]= make_cons(VV[3],base[10]);
  139.     base[15]= list(2,VV[7],base[2]);
  140.     base[16]= list(3,VV[6],base[4],base[15]);
  141.     base[17]= list(3,VV[2],base[14],base[16]);
  142.     base[18]= make_cons(base[17],Cnil);
  143.     base[19]= append(base[9],base[18]);
  144.     base[20]= listA(3,VV[1],base[13],base[19]);
  145.     vs_top=(vs_base=base+20)+1;
  146.     return;
  147. T32:;
  148.     base[8]= list(4,VV[5],base[3],base[5],base[6]);
  149.     base[9]= list(2,base[2],base[8]);
  150.     base[10]= make_cons(base[9],Cnil);
  151.     base[11]= listA(3,VV[1],base[10],base[7]);
  152.     vs_top=(vs_base=base+11)+1;
  153.     return;
  154. }
  155. /*    macro definition for WITH-OUTPUT-TO-STRING    */
  156.  
  157. static L4()
  158. {    register object *base=vs_base;
  159.     register object *sup=base+VM5;
  160.     vs_reserve(VM5);
  161.     check_arg(2);
  162.     vs_top=sup;
  163.     {object V8=base[0]->c.c_cdr;
  164.     if(endp(V8))invalid_macro_call();
  165.     {object V9= (V8->c.c_car);
  166.     if(endp(V9))invalid_macro_call();
  167.     base[2]= (V9->c.c_car);
  168.     V9=V9->c.c_cdr;
  169.     if(endp(V9)){
  170.     base[3]= Cnil;
  171.     } else {
  172.     base[3]= (V9->c.c_car);
  173.     V9=V9->c.c_cdr;}
  174.     if(!endp(V9))invalid_macro_call();}
  175.     V8=V8->c.c_cdr;
  176.     base[4]= V8;}
  177.     if((base[3])==Cnil){
  178.     goto T41;}
  179.     base[5]= list(2,VV[8],base[3]);
  180.     base[6]= list(2,base[2],base[5]);
  181.     base[7]= make_cons(base[6],Cnil);
  182.     base[8]= listA(3,VV[1],base[7],base[4]);
  183.     vs_top=(vs_base=base+8)+1;
  184.     return;
  185. T41:;
  186.     base[5]= list(2,base[2],VV[9]);
  187.     base[6]= make_cons(base[5],Cnil);
  188.     base[7]= list(2,VV[10],base[2]);
  189.     base[8]= make_cons(base[7],Cnil);
  190.     base[9]= append(base[4],base[8]);
  191.     base[10]= listA(3,VV[1],base[6],base[9]);
  192.     vs_top=(vs_base=base+10)+1;
  193.     return;
  194. }
  195. /*    function definition for READ-FROM-STRING    */
  196.  
  197. static L5()
  198. {    register object *base=vs_base;
  199.     register object *sup=base+VM6;
  200.     vs_reserve(VM6);
  201.     if(vs_top-vs_base<1) too_few_arguments();
  202.     parse_key(vs_base+3,FALSE,FALSE,3,VV[68],VV[69],VV[70]);
  203.     vs_base += 1;
  204.     if(vs_base>=vs_top){vs_top=sup;goto T43;}
  205.     vs_base++;
  206.     if(vs_base>=vs_top){vs_top=sup;goto T44;}
  207.     vs_top=sup;goto T45;
  208. T43:;
  209.     base[1]= Ct;
  210. T44:;
  211.     base[2]= Cnil;
  212. T45:;
  213.     if(base[6]==Cnil){
  214.     base[3]= VV[11];
  215.     }else{}
  216.     if(base[7]==Cnil){
  217.     base[4]= make_fixnum(length(base[0]));
  218.     }else{}
  219.     base[10]= base[0];
  220.     base[11]= base[3];
  221.     base[12]= base[4];
  222.     base[9]= simple_symlispcall_no_event(VV[5],base+10,3);
  223.     if((base[5])==Cnil){
  224.     goto T55;}
  225.     base[11]= base[9];
  226.     base[12]= base[1];
  227.     base[13]= base[2];
  228.     base[10]= simple_symlispcall_no_event(VV[71],base+11,3);
  229.     base[12]= base[9];
  230.     base[11]= simple_symlispcall_no_event(VV[7],base+12,1);
  231.     vs_base=base+10;vs_top=base+12;
  232.     return;
  233. T55:;
  234.     base[11]= base[9];
  235.     base[12]= base[1];
  236.     base[13]= base[2];
  237.     vs_top=(vs_base=base+11)+3;
  238.     Lread();
  239.     vs_top=sup;
  240.     base[10]= vs_base[0];
  241.     base[12]= base[9];
  242.     base[11]= simple_symlispcall_no_event(VV[7],base+12,1);
  243.     vs_base=base+10;vs_top=base+12;
  244.     return;
  245. }
  246. /*    function definition for WRITE-TO-STRING    */
  247.  
  248. static L6()
  249. {    register object *base=vs_base;
  250.     register object *sup=base+VM7;
  251.     vs_reserve(VM7);
  252.     if(vs_top-vs_base<1) too_few_arguments();
  253.     parse_key(vs_base+1,TRUE,FALSE,10,VV[72],VV[73],VV[74],VV[75],VV[76],VV[77],VV[78],VV[79],VV[80],VV[81]);
  254.     vs_top=sup;
  255.     base[22]= simple_symlispcall_no_event(VV[82],base+23,0);
  256.     base[23]= base[0];
  257.     base[24]= VV[12];
  258.     base[25]= base[22];
  259.     {object V10;
  260.     V10= base[1];
  261.      vs_top=base+26;
  262.      while(!endp(V10))
  263.      {vs_push(car(V10));V10=cdr(V10);}
  264.     vs_base=base+23;}
  265.     Lwrite();
  266.     vs_top=sup;
  267.     base[23]= base[22];
  268.     symlispcall_no_event(VV[10],base+23,1);
  269.     return;
  270. }
  271. /*    function definition for PRIN1-TO-STRING    */
  272.  
  273. static L7()
  274. {    register object *base=vs_base;
  275.     register object *sup=base+VM8;
  276.     vs_reserve(VM8);
  277.     check_arg(1);
  278.     vs_top=sup;
  279. TTL:;
  280.     base[1]= simple_symlispcall_no_event(VV[82],base+2,0);
  281.     (void)(prin1(base[0],base[1]));
  282.     base[2]= base[1];
  283.     symlispcall_no_event(VV[10],base+2,1);
  284.     return;
  285. }
  286. /*    function definition for PRINC-TO-STRING    */
  287.  
  288. static L8()
  289. {    register object *base=vs_base;
  290.     register object *sup=base+VM9;
  291.     vs_reserve(VM9);
  292.     check_arg(1);
  293.     vs_top=sup;
  294. TTL:;
  295.     base[1]= simple_symlispcall_no_event(VV[82],base+2,0);
  296.     (void)(princ(base[0],base[1]));
  297.     base[2]= base[1];
  298.     symlispcall_no_event(VV[10],base+2,1);
  299.     return;
  300. }
  301. /*    macro definition for WITH-OPEN-FILE    */
  302.  
  303. static L9()
  304. {    register object *base=vs_base;
  305.     register object *sup=base+VM10;
  306.     vs_reserve(VM10);
  307.     check_arg(2);
  308.     vs_top=sup;
  309.     {object V11=base[0]->c.c_cdr;
  310.     if(endp(V11))invalid_macro_call();
  311.     {object V12= (V11->c.c_car);
  312.     if(endp(V12))invalid_macro_call();
  313.     base[2]= (V12->c.c_car);
  314.     V12=V12->c.c_cdr;
  315.     base[3]= V12;}
  316.     V11=V11->c.c_cdr;
  317.     base[4]= V11;}
  318.     base[6]= base[4];
  319.     symlispcall_no_event(VV[66],base+6,1);
  320.     Llist();
  321.     vs_top=sup;
  322.     base[5]= vs_base[0];
  323.     base[6]= car(base[5]);
  324.     base[7]= cadr(base[5]);
  325.     base[8]= make_cons(VV[13],base[3]);
  326.     base[9]= list(2,base[2],base[8]);
  327.     base[10]= make_cons(base[9],Cnil);
  328.     base[11]= make_cons(VV[3],base[7]);
  329.     base[12]= list(2,VV[4],base[2]);
  330.     base[13]= list(3,VV[2],base[11],base[12]);
  331.     base[14]= make_cons(base[13],Cnil);
  332.     base[15]= append(base[6],base[14]);
  333.     base[16]= listA(3,VV[1],base[10],base[15]);
  334.     vs_top=(vs_base=base+16)+1;
  335.     return;
  336. }
  337. /*    function definition for Y-OR-N-P    */
  338.  
  339. static L10()
  340. {    register object *base=vs_base;
  341.     register object *sup=base+VM11;
  342.     vs_reserve(VM11);
  343.     if(vs_base>=vs_top){vs_top=sup;goto T87;}
  344.     vs_base++;
  345.     vs_top[0]=Cnil;
  346.     {object *p=vs_top;
  347.      for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
  348.     vs_top=sup;
  349.     goto T88;
  350. T87:;
  351.     base[0]= Cnil;
  352.     base[1]= Cnil;
  353. T88:;
  354.     base[2]= Cnil;
  355. T91:;
  356.     if((base[0])==Cnil){
  357.     goto T94;}
  358.     base[3]= symbol_value(VV[14]);
  359.     base[4]= VV[15];
  360.     base[5]= base[0];
  361.     base[6]= base[1];
  362.     vs_top=(vs_base=base+3)+4;
  363.     Lformat();
  364.     vs_top=sup;
  365. T94:;
  366.     base[3]= symbol_value(VV[14]);
  367.     vs_top=(vs_base=base+3)+1;
  368.     Lread();
  369.     vs_top=sup;
  370.     base[2]= vs_base[0];
  371.     base[4]= base[2];
  372.     vs_top=(vs_base=base+4)+1;
  373.     Lsymbol_name();
  374.     vs_top=sup;
  375.     base[3]= vs_base[0];
  376.     base[4]= VV[16];
  377.     vs_top=(vs_base=base+3)+2;
  378.     Lstring_equal();
  379.     vs_top=sup;
  380.     if((vs_base[0])==Cnil){
  381.     goto T106;}
  382.     base[3]= Ct;
  383.     vs_top=(vs_base=base+3)+1;
  384.     return;
  385. T106:;
  386.     base[4]= base[2];
  387.     vs_top=(vs_base=base+4)+1;
  388.     Lsymbol_name();
  389.     vs_top=sup;
  390.     base[3]= vs_base[0];
  391.     base[4]= VV[17];
  392.     vs_top=(vs_base=base+3)+2;
  393.     Lstring_equal();
  394.     vs_top=sup;
  395.     if((vs_base[0])==Cnil){
  396.     goto T104;}
  397.     base[3]= Cnil;
  398.     vs_top=(vs_base=base+3)+1;
  399.     return;
  400. T104:;
  401.     goto T91;
  402. }
  403. /*    function definition for YES-OR-NO-P    */
  404.  
  405. static L11()
  406. {    register object *base=vs_base;
  407.     register object *sup=base+VM12;
  408.     vs_reserve(VM12);
  409.     if(vs_base>=vs_top){vs_top=sup;goto T118;}
  410.     vs_base++;
  411.     vs_top[0]=Cnil;
  412.     {object *p=vs_top;
  413.      for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
  414.     vs_top=sup;
  415.     goto T119;
  416. T118:;
  417.     base[0]= Cnil;
  418.     base[1]= Cnil;
  419. T119:;
  420.     base[2]= Cnil;
  421. T122:;
  422.     if((base[0])==Cnil){
  423.     goto T125;}
  424.     base[3]= symbol_value(VV[14]);
  425.     base[4]= VV[18];
  426.     base[5]= base[0];
  427.     base[6]= base[1];
  428.     vs_top=(vs_base=base+3)+4;
  429.     Lformat();
  430.     vs_top=sup;
  431. T125:;
  432.     base[3]= symbol_value(VV[14]);
  433.     vs_top=(vs_base=base+3)+1;
  434.     Lread();
  435.     vs_top=sup;
  436.     base[2]= vs_base[0];
  437.     base[4]= base[2];
  438.     vs_top=(vs_base=base+4)+1;
  439.     Lsymbol_name();
  440.     vs_top=sup;
  441.     base[3]= vs_base[0];
  442.     base[4]= VV[19];
  443.     vs_top=(vs_base=base+3)+2;
  444.     Lstring_equal();
  445.     vs_top=sup;
  446.     if((vs_base[0])==Cnil){
  447.     goto T137;}
  448.     base[3]= Ct;
  449.     vs_top=(vs_base=base+3)+1;
  450.     return;
  451. T137:;
  452.     base[4]= base[2];
  453.     vs_top=(vs_base=base+4)+1;
  454.     Lsymbol_name();
  455.     vs_top=sup;
  456.     base[3]= vs_base[0];
  457.     base[4]= VV[20];
  458.     vs_top=(vs_base=base+3)+2;
  459.     Lstring_equal();
  460.     vs_top=sup;
  461.     if((vs_base[0])==Cnil){
  462.     goto T135;}
  463.     base[3]= Cnil;
  464.     vs_top=(vs_base=base+3)+1;
  465.     return;
  466. T135:;
  467.     goto T122;
  468. }
  469. /*    function definition for SHARP-A-READER    */
  470.  
  471. static L12()
  472. {    register object *base=vs_base;
  473.     register object *sup=base+VM13;
  474.     vs_reserve(VM13);
  475.     check_arg(3);
  476.     vs_top=sup;
  477. TTL:;
  478.     base[4]= base[0];
  479.     base[5]= Cnil;
  480.     base[6]= Cnil;
  481.     base[7]= Ct;
  482.     vs_top=(vs_base=base+4)+4;
  483.     Lread();
  484.     vs_top=sup;
  485.     base[3]= vs_base[0];
  486.     if((symbol_value(VV[21]))==Cnil){
  487.     goto T155;}
  488.     base[4]= Cnil;
  489.     vs_top=(vs_base=base+4)+1;
  490.     return;
  491. T155:;
  492.     base[4]= VV[11];
  493.     base[5]= Cnil;
  494.     base[6]= base[3];
  495. T158:;
  496.     if(!(number_compare(base[4],base[2])>=0)){
  497.     goto T159;}
  498.     base[7]=symbol_function(VV[83]);
  499.     base[8]= nreverse(base[5]);
  500.     base[9]= VV[22];
  501.     base[10]= base[3];
  502.     lispcall_no_event(base+7,3);
  503.     return;
  504. T159:;
  505.     base[4]= one_plus(base[4]);
  506.     base[7]= make_fixnum(length(base[6]));
  507.     base[5]= make_cons(base[7],base[5]);
  508.     base[6]= elt(base[6],0);
  509.     goto T158;
  510. }
  511. /*    function definition for SHARP-S-READER    */
  512.  
  513. static L15()
  514. {    register object *base=vs_base;
  515.     register object *sup=base+VM14;
  516.     vs_reserve(VM14);
  517.     check_arg(3);
  518.     vs_top=sup;
  519. TTL:;
  520.     if((base[2])==Cnil){
  521.     goto T171;}
  522.     if((symbol_value(VV[21]))!=Cnil){
  523.     goto T171;}
  524.     base[3]= VV[27];
  525.     base[4]= base[2];
  526.     vs_top=(vs_base=base+3)+2;
  527.     Lerror();
  528.     vs_top=sup;
  529. T171:;
  530.     base[4]= base[0];
  531.     vs_top=(vs_base=base+4)+1;
  532.     Lread();
  533.     vs_top=sup;
  534.     base[3]= vs_base[0];
  535.     if((get(car(base[3]),VV[28],Cnil))!=Cnil){
  536.     goto T180;}
  537.     base[4]= VV[29];
  538.     base[5]= car(base[3]);
  539.     vs_top=(vs_base=base+4)+2;
  540.     Lerror();
  541.     vs_top=sup;
  542. T180:;
  543.     base[4]= cdr(base[3]);
  544. T187:;
  545.     if(!(endp(base[4]))){
  546.     goto T188;}
  547.     base[5]= get(car(base[3]),VV[30],Cnil);
  548. T193:;
  549.     if(!(endp(base[5]))){
  550.     goto T194;}
  551.     base[6]= VV[31];
  552.     base[7]= car(base[3]);
  553.     vs_top=(vs_base=base+6)+2;
  554.     Lerror();
  555.     return;
  556. T194:;
  557.     if(!(type_of(car(base[5]))==t_symbol)){
  558.     goto T200;}
  559.     base[6]= car(base[5]);
  560.     {object V13;
  561.     V13= cdr(base[3]);
  562.      vs_top=base+7;
  563.      while(!endp(V13))
  564.      {vs_push(car(V13));V13=cdr(V13);}
  565.     vs_base=base+7;}
  566.     super_funcall_no_event(base[6]);
  567.     return;
  568. T200:;
  569.     base[5]= cdr(base[5]);
  570.     goto T193;
  571. T188:;
  572.     base[6]= coerce_to_string(car(base[4]));
  573.     base[7]= VV[32];
  574.     vs_top=(vs_base=base+6)+2;
  575.     Lintern();
  576.     vs_top=sup;
  577.     base[5]= vs_base[0];
  578.     if(type_of(base[4])!=t_cons)FEwrong_type_argument(Scons,base[4]);
  579.     (base[4])->c.c_car = base[5];
  580.     base[4]= cddr(base[4]);
  581.     goto T187;
  582. }
  583. /*    function definition for DRIBBLE    */
  584.  
  585. static L18()
  586. {    register object *base=vs_base;
  587.     register object *sup=base+VM15;
  588.     vs_reserve(VM15);
  589.     if(vs_top-vs_base>2) too_many_arguments();
  590.     if(vs_base>=vs_top){vs_top=sup;goto T216;}
  591.     base[2]= Ct;
  592.     vs_base++;
  593.     if(vs_base>=vs_top){vs_top=sup;goto T217;}
  594.     vs_top=sup;
  595.     goto T218;
  596. T216:;
  597.     base[0]= VV[40];
  598.     base[2]= Cnil;
  599. T217:;
  600.     base[1]= VV[41];
  601. T218:;
  602.     if((base[2])!=Cnil){
  603.     goto T222;}
  604.     if((symbol_value(VV[36]))!=Cnil){
  605.     goto T224;}
  606.     base[3]= VV[42];
  607.     vs_top=(vs_base=base+3)+1;
  608.     Lerror();
  609.     vs_top=sup;
  610. T224:;
  611.     if(!(symbol_value(VV[37])==symbol_value(VV[43]))){
  612.     goto T230;}
  613.     setq(VV[43],symbol_value(VV[39]));
  614.     goto T228;
  615. T230:;
  616.     base[3]= VV[44];
  617.     (void)simple_symlispcall_no_event(VV[84],base+3,1);
  618. T228:;
  619.     base[3]= symbol_value(VV[36]);
  620.     vs_top=(vs_base=base+3)+1;
  621.     Lclose();
  622.     vs_top=sup;
  623.     setq(VV[36],Cnil);
  624.     base[3]= Ct;
  625.     base[4]= VV[45];
  626.     base[5]= symbol_value(VV[38]);
  627.     vs_top=(vs_base=base+3)+3;
  628.     Lformat();
  629.     return;
  630. T222:;
  631.     if((symbol_value(VV[36]))==Cnil){
  632.     goto T242;}
  633.     base[3]= VV[46];
  634.     base[4]= symbol_value(VV[38]);
  635.     vs_top=(vs_base=base+3)+2;
  636.     Lerror();
  637.     return;
  638. T242:;
  639.     base[4]= base[0];
  640.     vs_top=(vs_base=base+4)+1;
  641.     Lnamestring();
  642.     vs_top=sup;
  643.     base[3]= vs_base[0];
  644.     base[5]= base[0];
  645.     base[6]= VV[47];
  646.     base[7]= VV[48];
  647.     base[8]= VV[49];
  648.     base[9]= base[1];
  649.     base[10]= VV[50];
  650.     base[11]= VV[51];
  651.     vs_top=(vs_base=base+5)+7;
  652.     Lopen();
  653.     vs_top=sup;
  654.     base[4]= vs_base[0];
  655.     setq(VV[38],base[3]);
  656.     setq(VV[36],base[4]);
  657.     setq(VV[39],symbol_value(VV[43]));
  658.     base[6]= symbol_value(VV[43]);
  659.     base[7]= base[4];
  660.     vs_top=(vs_base=base+6)+2;
  661.     Lmake_echo_stream();
  662.     vs_top=sup;
  663.     base[5]= vs_base[0];
  664.     base[7]= symbol_value(VV[43]);
  665.     base[8]= base[4];
  666.     vs_top=(vs_base=base+7)+2;
  667.     Lmake_broadcast_stream();
  668.     vs_top=sup;
  669.     base[6]= vs_base[0];
  670.     vs_top=(vs_base=base+5)+2;
  671.     Lmake_two_way_stream();
  672.     vs_top=sup;
  673.     setq(VV[37],vs_base[0]);
  674.     setq(VV[43],symbol_value(VV[37]));
  675.     symlispcall_no_event(VV[85],base+6,0);
  676.     Llist();
  677.     vs_top=sup;
  678.     base[5]= vs_base[0];
  679.     base[6]= car(base[5]);
  680.     base[7]= cadr(base[5]);
  681.     base[8]= caddr(base[5]);
  682.     base[9]= cadddr(base[5]);
  683.     base[10]= car(cddddr(base[5]));
  684.     base[11]= cadr(cddddr(base[5]));
  685.     base[12]= Ct;
  686.     base[13]= VV[52];
  687.     base[14]= base[3];
  688.     base[15]= base[11];
  689.     base[16]= base[10];
  690.     base[17]= base[9];
  691.     base[18]= base[8];
  692.     base[19]= base[7];
  693.     base[20]= base[6];
  694.     vs_top=(vs_base=base+12)+9;
  695.     Lformat();
  696.     return;
  697. }
  698.